/**
 * @author Stephan Marc Hansen
 */
package com.kea.firsthorse.server;

import java.sql.ResultSet;

/**
 * Interface til brug for klassen MysqlControl
 * 
 * @see MysqlController
 */
public interface MysqlControlIface {

	/**
	 * Opretter forbindelse til databasen
	 * 
	 * @exception Exception
	 *                Ved databaseproblemer, ex. ingen forbindelse - forkert
	 *                pass/bruger mv.
	 */
	public abstract void connect() throws Exception;

	/**
	 * Indhenter en brugers hashede password fra databasen, til brug for
	 * sammeligning i forbindelse med login.
	 * 
	 * @param id
	 *            for brugeren der �nskes hash fra
	 * @exception Exception
	 *                Ved databaseproblemer
	 * @return ResultSet indeholdende en brugers hashede password
	 */
	public abstract ResultSet getUserPWHash(int id) throws Exception;

	/**
	 * Indhenter fra databasen, stamoplysninger for en bruger
	 * 
	 * @param id
	 *            for brugeren der �nskes oplysninger om.
	 * @exception Exception
	 *                Ved databaseproblemer
	 * @return ResultSet indeholdende stamoplysningerne for brugeren
	 */
	public abstract ResultSet getUserbyID(int id) throws Exception;

	/**
	 * Henter en given policy fra databasen ud fra en bestemt bruger
	 * 
	 * @param id
	 *            brugerid for �nsket brugerdata
	 * @exception Exception
	 *                Ved databaseproblemer
	 * @return et ResultSet indeholdene 0,1 eller flere policies tilh�rende en
	 *         bestemt bruger
	 */
	public abstract ResultSet getPoliciesbyUserID(int id) throws Exception;

	/**
	 * Hent data p� en hest fra databasen, ud fra en given policy
	 * 
	 * @param id
	 *            for policen hesten er repr�senteret ved
	 * @exception Exception
	 *                Ved databaseproblemer
	 * @return ResultSet repr�senterende en hest
	 */
	public abstract ResultSet getHorsebyPolicyID(int id) throws Exception;

	/**
	 * Afslut databaseforbindelsen p� ordentlig m�de.
	 */
	public abstract void disconnect();

	/**
	 * @param id
	 * @throws Exception
	 */
	ResultSet getTermsbyPolicyID(int id) throws Exception;

}
